package com.coderman.infosys.auth.app.facadeimpl.system;

import com.coderman.infosys.auth.api.dto.system.SystemQueryDTO;
import com.coderman.infosys.auth.api.dto.system.request.SystemQueryRequestDTO;
import com.coderman.infosys.auth.app.convert.SystemConvert;
import com.coderman.infosys.auth.domain.bo.system.SystemBO;
import com.coderman.infosys.auth.domain.gataway.SystemModuleQueryGataWay;
import com.coderman.infosys.plat.auth.common.dto.PageDTO;
import com.coderman.infosys.plat.auth.common.dto.ResultDataDto;
import com.coderman.infosys.plat.auth.common.page.PageBO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import com.coderman.infosys.auth.api.facade.system.SystemQueryFacade;
import com.coderman.infosys.auth.api.dto.system.SystemDTO;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.beans.factory.annotation.Autowired;


/**
 * @Description:系统查询接口实现类
 * @Author：
 * @CreateTime：2022-01-02 15:27:39
 * @version v1.0
 */
@Service
public class SystemQueryFacadeImpl extends AbstractSystemQuerySpec   implements SystemQueryFacade{

	private  Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private SystemModuleQueryGataWay systemModuleQueryGataWay;

    @Override
    public ResultDataDto<SystemDTO> getSystem(SystemQueryRequestDTO systemQueryRequestDTO) {
        SystemBO systemBO = querySystemSpec(systemQueryRequestDTO);
        return ResultDataDto.success(SystemConvert.INSTANCE.bo2dto(systemBO));
    }

    @Override
    public ResultDataDto<List<SystemDTO>> getSystemList(SystemQueryRequestDTO systemQueryRequestDTO) {
        List<SystemBO> systemBOList = querySystemListSpec(systemQueryRequestDTO);
        return ResultDataDto.success(SystemConvert.INSTANCE.systemBOs2dtoList(systemBOList));
    }

    @Override
    public ResultDataDto<PageDTO<SystemDTO, SystemQueryDTO>> getPageList(PageDTO<SystemDTO, SystemQueryDTO> pageDTO) {
        PageBO pageBO = pageDTO.convertToBO();

        List<SystemBO> systemBOList = systemModuleQueryGataWay.querySystemPage(pageBO);
        List<SystemDTO> systemDTOList = SystemConvert.INSTANCE.systemBOs2dtoList(systemBOList);
        return ResultDataDto.success(pageDTO.initData(systemDTOList,pageBO.getTotalRows()));
    }
}